Autor: Franciszek Saliński
Zadaniem jest stworzenie wizualizacji przedstawiającej mapę lub graf.
Za cel postawiłem sobie stworzenie interaktywnej mapy świata, która będzie przedstawiać liczbę zwycięzców Złotej Piłki, najważniejszej indywidualnej nagrody przyznawanej co roku dla najlepszego piłkarza świata, dla różnych krajów.
df <- read.csv("BallonDor-GoldenBall_Winners_v2.csv") %>% select(-X)
head(df)
## Year Rank Player Country Team Points Source
## 1 1956 1st Stanley Matthews England Blackpool 47 Wikipedia
## 2 1956 2nd Alfredo Di Stefano Spain Real Madrid 44 Wikipedia
## 3 1956 3rd Raymond Kopa France Real Madrid 33 Wikipedia
## 4 1957 1st Alfredo Di Stefano Spain Real Madrid 72 Wikipedia
## 5 1957 2nd Billy Wright England Wolverhampton Wanderers 19 Wikipedia
## 6 1957 3rd Duncan Edwards England Manchester United 16 Wikipedia
Z racji, że w danych występowały nieistniejące obecnie kraje, należało je zamienić.
df %>%
filter(Rank == "1st") %>%
mutate(Country = ifelse(
Country == "West Germany", "Germany", Country
)) %>%
mutate(Country = ifelse(
Country == "Soviet Union", "Russia", Country
)) %>%
mutate(Country = ifelse(
Country == "Czechoslovakia", "Czech Republic", Country
)) %>%
group_by(Country) %>%
summarise(n = n()) %>%
arrange(-n) -> winners
# Add other countries with 0 winners
all_countries <- map_data("world")$region
winners <- rbind(
winners,
data.frame(Country = setdiff(all_countries, winners$Country),
n = rep(0, length(setdiff(all_countries, winners$Country))))
)
winners
## # A tibble: 255 × 2
## Country n
## <chr> <dbl>
## 1 Argentina 7
## 2 France 7
## 3 Germany 7
## 4 Netherlands 7
## 5 Portugal 7
## 6 Brazil 5
## 7 England 5
## 8 Italy 5
## 9 Russia 3
## 10 Spain 3
## # ℹ 245 more rows
map <- plot_ly(
type = 'choropleth',
locations = winners$Country,
locationmode = 'country names',
z = as.factor(winners$n),
text = winners$Country
) %>%
layout(
title = 'Liczba zwycięzców Złotej Piłki dla różnych krajów',
geo = list(
showcoastlines = TRUE,
projection = list(type = 'orthographic')
))
# Wiem, że skala kolorów powinna być dyskretna, ale nie mam
# pojęcia jak to zrobić w plotly
map
## Warning: `marker.color` does not currently support multiple values.
Widzimy, że praktycznie wszyscy zwycięzcy plebiscytu pochodzili z Europy bądź Ameryki Południowej, jedynym wyjątkiem jest George Weah z Liberii. Nie jest to dziwne, gdyż na tych kontynentach piłka nożna jest najbardziej popularna.